import { FogBase } from "../../thirdparty/three/imports";

export class FogBase3D
{
    get _fog()
    {
        return this.__fog;
    }
    set _fog(v)
    {
        FogBase3D._map.delete(this.__fog);
        this.__fog = v;
        FogBase3D._map.set(this.__fog, this);
    }
    private __fog: FogBase;

    static get(fog: FogBase)
    {
        let fog3D = this._map.get(fog);
        if (!fog3D)
        {
            fog3D = new FogBase3D();
            fog3D._fog = fog;
        }

        return fog3D;
    }
    protected static _map = new Map<FogBase, FogBase3D>();
}
